//路由是用来配置组件和路径的对应关系

//1.先导入路由的组件的对象(createRouter用来创建路由，createWebHistory用来配置路径匹配模式)
import { createRouter, createWebHistory } from 'vue-router'
import { getToken, setToken, removeToken } from '@/utils/auth'
import { buildUrl } from '@/config'

//导入组件（四个组件）
import bigScreenIndex from '@/Pages/bigScreen/bigScreenIndex.vue'
import IndexPage from '@/Pages/bigScreen/indexPage.vue'
import testPage from '@/Pages/test/index.vue'

//2.定义一个数组用于对应路径和组件的对应关系
//注意：每个数组里的每一个数据都是一个对象（需要设置一些必须的属性）

const routes = [
  //默认首页面（使用重定向实现）
  {
    path: '/',
    redirect: '/index', //注意使用重定向的时候要带上引号
  },
  //默认首页面（使用重定向实现）
  {
    name: 'index',
    path: '/index',
    component: bigScreenIndex,
  },
  {
    path: '/bigScreen',
    name: '驾驶舱',
    hidden: true,
    meta: {
      name: '',
    },
    component: IndexPage,
  },
  {
    name: 'login',
    path: '/login',
    component: testPage,
  },
]

//3.创建路由对象（调用createRouter函数）并且导出(配置两个属性 路由规则+路由模式)
const myRouter = createRouter({
  routes: routes, //指定路由匹配规则
  history: createWebHistory(
    process.env.NODE_ENV === 'development' ? '/' : buildUrl
  ), //指定地址匹配模式
})
// 添加导航守卫
myRouter.beforeEach((to, from, next) => {
  const tk = to.query.tk // 获取 URL 中的 tk 参数值
  const hasCookie = getToken() // 这里是你检查 cookie 的函数名
  if (tk) {
    // 如果 tk 参数值，则直接跳转到 index 页面
    console.log('4')
    setToken(tk)
    next({name:'index'})
  }else if (to.name !== 'login' && !hasCookie) {
    // 如果目标页面是 test 页面且没有 cookie，重定向到 test 页面
    console.log('1')
    next({ name: 'login' })
  } else if (to.name === 'index' && hasCookie) { // 去首页
    // 如果目标页面是 bigScreenIndex 页面且有 cookie，重定向到 index 页面
    console.log('2')
    next()
  } else {
    // 其他情况下正常进行路由跳转
    console.log('3')
    next()
  }

})

// const router = createRouter()

// export function resetRouter() {
//   const newRouter = createRouter()
//   router.matcher = newRouter.matcher // reset router
// }
//4.将路由对象导出
export default myRouter
